package com.housing.domain.vo;

import java.math.BigDecimal;
import com.housing.domain.House;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zmetaport.common.core.validate.AddGroup;
import com.zmetaport.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;


/**
 * 【请填写功能名称】视图对象 house
 *
 * @author chensm
 * @date 2024-12-15
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = House.class)
public class HouseVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private Long id;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private Long buildingId;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private Long ownerId;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private Long status;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private String roomNumber;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private BigDecimal area;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private Long floor;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private Long orientation;


    /**
     * 
     */
    @ExcelProperty(value = "")
    private String description;

    /**
     * 
     */
    @ExcelProperty(value = "")
    private String remark;

    private Integer bedroomCount;
    /**
     * 客厅数量
     */
    private Integer livingroomCount;
    /**
     * 卫生间数量
     */
    private Integer bathroomCount;




    private List<AttachmentVo> attachments;

    private List<HouseItemVo> items;


    /**
     * 租金
     */
    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal rent;

    /**
     * 币种 1CNY 2USD 3EUR
     */
    @NotNull(message = "1CNY 2USD 3EUR不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long currency;

    /**
     * 1月交 2季度交 3趸交
     */
    @NotNull(message = "1月交 2季度交 3趸交不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long rentType;


    /**
     * 押金
     */
    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal deposit;

}
